using BasicData.API.Dtos;

namespace BasicData.API.Services
{
    /// <summary>
    /// 验证码服务接口
    /// </summary>
    public interface ICaptchaService
    {
        /// <summary>
        /// 生成验证码
        /// </summary>
        /// <param name="request">验证码生成请求</param>
        /// <returns>验证码生成响应</returns>
        Task<CaptchaGenerateResponse> GenerateCaptchaAsync(CaptchaGenerateRequest request);
        
        /// <summary>
        /// 刷新验证码
        /// </summary>
        /// <param name="captchaId">原验证码ID</param>
        /// <param name="request">验证码生成请求</param>
        /// <returns>验证码生成响应</returns>
        Task<CaptchaGenerateResponse> RefreshCaptchaAsync(string captchaId, CaptchaGenerateRequest request);

        /// <summary>
        /// 验证验证码
        /// </summary>
        /// <param name="request">验证码验证请求</param>
        /// <returns>验证码验证响应</returns>
        Task<CaptchaVerifyResponse> VerifyCaptchaAsync(CaptchaVerifyRequest request);
    }
} 